//============================================================================
/**
 *
 *	@file		museum_bg.h
 *	@brief		ポケスロンミュージアム BG管理モジュール
 *	@author		hosaka genya
 *	@data		2008.08.20
 *
 */
//============================================================================
#pragma once
#include "system/msgdata.h"
#include "system/wordset.h"
#include "system/fontproc.h"

//=============================================================================
/**
 *								定数定義
 */
//=============================================================================
enum
{
	FONT_TALK_PAL	= 12,		///< パレット位置
};

//=============================================================================
/**
 *								構造体定義
 */
//=============================================================================
//--------------------------------------------------------------
///	メッセージワーク
//==============================================================
typedef struct {
	HEAPID				heapID;
	GF_BGL_BMPWIN*		win; ///< BMPWINの配列。
	MSGDATA_MANAGER*	p_mm;
	MSGDATA_MANAGER*	p_mm_mons;
	WORDSET*			p_wset;
	void*				p_strbuf;
	int					win_max;
} MUSEUM_MSG_WORK;


//=============================================================================
/**
 *								プロトタイプ宣言
 */
//=============================================================================
extern MUSEUM_MSG_WORK* MUSEUM_BMPWIN_Create( HEAPID heapID, GF_BGL_INI* p_bgl, int win_max, const BMPWIN_DAT bmpwin_list[], u32 msg_arc_idx );
extern void MUSEUM_BMPWIN_Delete( MUSEUM_MSG_WORK* p_msg, int win_max );
extern void MUSEUM_BMPWIN_Print( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx, BOOL b_center );
extern void MUSEUM_BMPWIN_PrintEx( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx, BOOL b_center, u8 add_y, FONT_TYPE font );
extern void MUSEUM_BMPWIN_PrintAndSetOfs( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx, u8 add_x, u8 add_y );
extern void MUSEUM_BMPWIN_PrintAndSelectBackColor( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx, u8 back_col );
extern void MUSEUM_BMPWIN_PrintNum( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx, s32 num, u32 figre, u32 buf_idx );
extern void MUSEUM_BMPWIN_PrintRegStr( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx );
extern void MUSEUM_BMPWIN_PrintRegStrWithPos( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx, u8 px, u8 py );
extern void MUSEUM_BMPWIN_RegistNum( MUSEUM_MSG_WORK* p_msg, s32 num, u32 figre, u32 buf_idx );
extern void MUSEUM_BMPWIN_PrintPlayerName( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u32 msg_idx, u32 buf_idx, const MYSTATUS*  p_st );
extern void MUSEUM_BMPWIN_PrintPokemonName( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u16 monsno );
extern void MUSEUM_BMPWIN_ClearAndTransReq( MUSEUM_MSG_WORK* p_msg, u32 win_idx );
extern void MUSEUM_BMPWIN_PrintStrbuf( MUSEUM_MSG_WORK* p_msg, u32 win_idx, const STRBUF* p_strbuf, u8 px, u8 py );
extern void MUSEUM_BMPWIN_OffVReq( MUSEUM_MSG_WORK* p_msg, u32 win_idx );
extern void MUSEUM_BMPWIN_SetPosY( MUSEUM_MSG_WORK* p_msg, u32 win_idx, u8 pos_y );
extern WORDSET* MUSEUM_BMPWIN_GetWordset( MUSEUM_MSG_WORK* p_msg );

